#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package}.${artifactId}.${artifactId}object;

import ${package}.core.${artifactId}.model.BaseDO;

import javax.persistence.Column;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 表名：item_product
 */
@Table(name = "`item_product_copy1`")
public class ItemProductDO extends BaseDO {


    /**
     * 来源平台ID
     */
    @Column(name = "`store_id`")
    private Long storeId;

    /**
     * 品牌ID
     */
    @Column(name = "`brand_id`")
    private Long brandId;

    /**
     * 分类id
     */
    @Column(name = "`cate_id`")
    private Long cateId;

    /**
     * 商品类型 n普通商品 p套餐
     */
    @Column(name = "`product_type`")
    private String productType;

    /**
     * 商品编号
     */
    @Column(name = "`product_code`")
    private String productCode;

    /**
     * 商品名称
     */
    @Column(name = "`product_name`")
    private String productName;

    /**
     * 展示的图片的url
     */
    @Column(name = "`pic_url`")
    private String picUrl;

    /**
     * 基础描述
     */
    @Column(name = "`description`")
    private String description;

    /**
     * 售卖状态 0未售卖 1售卖
     */
    @Column(name = "`sale_status`")
    private Byte saleStatus;

    /**
     * 上架时间
     */
    @Column(name = "`on_shelves_time`")
    private Date onShelvesTime;

    /**
     * 下架时间
     */
    @Column(name = "`off_shelves_time`")
    private Date offShelvesTime;

    /**
     * 最小价格
     */
    @Column(name = "`min_price`")
    private BigDecimal minPrice;

    /**
     * 最高价格
     */
    @Column(name = "`max_price`")
    private BigDecimal maxPrice;

    /**
     * 销量
     */
    @Column(name = "`sale_qty`")
    private Long saleQty;

    /**
     * 操作者
     */
    @Column(name = "`operater`")
    private String operater;

    /**
     * 商品特殊ID(预留字段)
     */
    @Column(name = "`product_special_id`")
    private Long productSpecialId;

    /**
     * 商品特殊CODE(预留字段)
     */
    @Column(name = "`product_special_code`")
    private String productSpecialCode;

    /**
     * 商品特殊属性(预留字段)
     */
    @Column(name = "`product_special_attr`")
    private String productSpecialAttr;

    /**
     * 商品详情的HTML
     */
    @Column(name = "`detail_html`")
    private String detailHtml;

    public static final String ID = "id";

    public static final String DB_ID = "id";

    public static final String STORE_ID = "storeId";

    public static final String DB_STORE_ID = "store_id";

    public static final String BRAND_ID = "brandId";

    public static final String DB_BRAND_ID = "brand_id";

    public static final String CATE_ID = "cateId";

    public static final String DB_CATE_ID = "cate_id";

    public static final String PRODUCT_TYPE = "productType";

    public static final String DB_PRODUCT_TYPE = "product_type";

    public static final String PRODUCT_CODE = "productCode";

    public static final String DB_PRODUCT_CODE = "product_code";

    public static final String PRODUCT_NAME = "productName";

    public static final String DB_PRODUCT_NAME = "product_name";

    public static final String PIC_URL = "picUrl";

    public static final String DB_PIC_URL = "pic_url";

    public static final String DESCRIPTION = "description";

    public static final String DB_DESCRIPTION = "description";

    public static final String SALE_STATUS = "saleStatus";

    public static final String DB_SALE_STATUS = "sale_status";

    public static final String ON_SHELVES_TIME = "onShelvesTime";

    public static final String DB_ON_SHELVES_TIME = "on_shelves_time";

    public static final String OFF_SHELVES_TIME = "offShelvesTime";

    public static final String DB_OFF_SHELVES_TIME = "off_shelves_time";

    public static final String MIN_PRICE = "minPrice";

    public static final String DB_MIN_PRICE = "min_price";

    public static final String MAX_PRICE = "maxPrice";

    public static final String DB_MAX_PRICE = "max_price";

    public static final String SALE_QTY = "saleQty";

    public static final String DB_SALE_QTY = "sale_qty";

    public static final String DELFLAG = "delflag";

    public static final String DB_DELFLAG = "delflag";

    public static final String CREATE_TIME = "createTime";

    public static final String DB_CREATE_TIME = "create_time";

    public static final String UPDATE_TIME = "updateTime";

    public static final String DB_UPDATE_TIME = "update_time";

    public static final String OPERATER = "operater";

    public static final String DB_OPERATER = "operater";

    public static final String PRODUCT_SPECIAL_ID = "productSpecialId";

    public static final String DB_PRODUCT_SPECIAL_ID = "product_special_id";

    public static final String PRODUCT_SPECIAL_CODE = "productSpecialCode";

    public static final String DB_PRODUCT_SPECIAL_CODE = "product_special_code";

    public static final String PRODUCT_SPECIAL_ATTR = "productSpecialAttr";

    public static final String DB_PRODUCT_SPECIAL_ATTR = "product_special_attr";

    public static final String DETAIL_HTML = "detailHtml";

    public static final String DB_DETAIL_HTML = "detail_html";


    /**
     * 获取来源平台ID
     *
     * @return storeId - 来源平台ID
     */
    public Long getStoreId() {
        return storeId;
    }

    public ItemProductDO withStoreId(Long storeId) {
        this.setStoreId(storeId);
        return this;
    }

    /**
     * 设置来源平台ID
     *
     * @param storeId 来源平台ID
     */
    public void setStoreId(Long storeId) {
        this.storeId = storeId;
    }

    /**
     * 获取品牌ID
     *
     * @return brandId - 品牌ID
     */
    public Long getBrandId() {
        return brandId;
    }

    public ItemProductDO withBrandId(Long brandId) {
        this.setBrandId(brandId);
        return this;
    }

    /**
     * 设置品牌ID
     *
     * @param brandId 品牌ID
     */
    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    /**
     * 获取分类id
     *
     * @return cateId - 分类id
     */
    public Long getCateId() {
        return cateId;
    }

    public ItemProductDO withCateId(Long cateId) {
        this.setCateId(cateId);
        return this;
    }

    /**
     * 设置分类id
     *
     * @param cateId 分类id
     */
    public void setCateId(Long cateId) {
        this.cateId = cateId;
    }

    /**
     * 获取商品类型 n普通商品 p套餐
     *
     * @return productType - 商品类型 n普通商品 p套餐
     */
    public String getProductType() {
        return productType;
    }

    public ItemProductDO withProductType(String productType) {
        this.setProductType(productType);
        return this;
    }

    /**
     * 设置商品类型 n普通商品 p套餐
     *
     * @param productType 商品类型 n普通商品 p套餐
     */
    public void setProductType(String productType) {
        this.productType = productType == null ? null : productType.trim();
    }

    /**
     * 获取商品编号
     *
     * @return productCode - 商品编号
     */
    public String getProductCode() {
        return productCode;
    }

    public ItemProductDO withProductCode(String productCode) {
        this.setProductCode(productCode);
        return this;
    }

    /**
     * 设置商品编号
     *
     * @param productCode 商品编号
     */
    public void setProductCode(String productCode) {
        this.productCode = productCode == null ? null : productCode.trim();
    }

    /**
     * 获取商品名称
     *
     * @return productName - 商品名称
     */
    public String getProductName() {
        return productName;
    }

    public ItemProductDO withProductName(String productName) {
        this.setProductName(productName);
        return this;
    }

    /**
     * 设置商品名称
     *
     * @param productName 商品名称
     */
    public void setProductName(String productName) {
        this.productName = productName == null ? null : productName.trim();
    }

    /**
     * 获取展示的图片的url
     *
     * @return picUrl - 展示的图片的url
     */
    public String getPicUrl() {
        return picUrl;
    }

    public ItemProductDO withPicUrl(String picUrl) {
        this.setPicUrl(picUrl);
        return this;
    }

    /**
     * 设置展示的图片的url
     *
     * @param picUrl 展示的图片的url
     */
    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl == null ? null : picUrl.trim();
    }

    /**
     * 获取基础描述
     *
     * @return description - 基础描述
     */
    public String getDescription() {
        return description;
    }

    public ItemProductDO withDescription(String description) {
        this.setDescription(description);
        return this;
    }

    /**
     * 设置基础描述
     *
     * @param description 基础描述
     */
    public void setDescription(String description) {
        this.description = description == null ? null : description.trim();
    }

    /**
     * 获取售卖状态 0未售卖 1售卖
     *
     * @return saleStatus - 售卖状态 0未售卖 1售卖
     */
    public Byte getSaleStatus() {
        return saleStatus;
    }

    public ItemProductDO withSaleStatus(Byte saleStatus) {
        this.setSaleStatus(saleStatus);
        return this;
    }

    /**
     * 设置售卖状态 0未售卖 1售卖
     *
     * @param saleStatus 售卖状态 0未售卖 1售卖
     */
    public void setSaleStatus(Byte saleStatus) {
        this.saleStatus = saleStatus;
    }

    /**
     * 获取上架时间
     *
     * @return onShelvesTime - 上架时间
     */
    public Date getOnShelvesTime() {
        return onShelvesTime;
    }

    public ItemProductDO withOnShelvesTime(Date onShelvesTime) {
        this.setOnShelvesTime(onShelvesTime);
        return this;
    }

    /**
     * 设置上架时间
     *
     * @param onShelvesTime 上架时间
     */
    public void setOnShelvesTime(Date onShelvesTime) {
        this.onShelvesTime = onShelvesTime;
    }

    /**
     * 获取下架时间
     *
     * @return offShelvesTime - 下架时间
     */
    public Date getOffShelvesTime() {
        return offShelvesTime;
    }

    public ItemProductDO withOffShelvesTime(Date offShelvesTime) {
        this.setOffShelvesTime(offShelvesTime);
        return this;
    }

    /**
     * 设置下架时间
     *
     * @param offShelvesTime 下架时间
     */
    public void setOffShelvesTime(Date offShelvesTime) {
        this.offShelvesTime = offShelvesTime;
    }

    /**
     * 获取最小价格
     *
     * @return minPrice - 最小价格
     */
    public BigDecimal getMinPrice() {
        return minPrice;
    }

    public ItemProductDO withMinPrice(BigDecimal minPrice) {
        this.setMinPrice(minPrice);
        return this;
    }

    /**
     * 设置最小价格
     *
     * @param minPrice 最小价格
     */
    public void setMinPrice(BigDecimal minPrice) {
        this.minPrice = minPrice;
    }

    /**
     * 获取最高价格
     *
     * @return maxPrice - 最高价格
     */
    public BigDecimal getMaxPrice() {
        return maxPrice;
    }

    public ItemProductDO withMaxPrice(BigDecimal maxPrice) {
        this.setMaxPrice(maxPrice);
        return this;
    }

    /**
     * 设置最高价格
     *
     * @param maxPrice 最高价格
     */
    public void setMaxPrice(BigDecimal maxPrice) {
        this.maxPrice = maxPrice;
    }

    /**
     * 获取销量
     *
     * @return saleQty - 销量
     */
    public Long getSaleQty() {
        return saleQty;
    }

    public ItemProductDO withSaleQty(Long saleQty) {
        this.setSaleQty(saleQty);
        return this;
    }

    /**
     * 设置销量
     *
     * @param saleQty 销量
     */
    public void setSaleQty(Long saleQty) {
        this.saleQty = saleQty;
    }


    /**
     * 获取创建时间
     *
     * @return createTime - 创建时间
     */


    public ItemProductDO withCreateTime(Date createTime) {
        this.setCreateTime(createTime);
        return this;
    }


    public ItemProductDO withUpdateTime(Date updateTime) {
        this.setUpdateTime(updateTime);
        return this;
    }


    /**
     * 获取操作者
     *
     * @return operater - 操作者
     */
    public String getOperater() {
        return operater;
    }

    public ItemProductDO withOperater(String operater) {
        this.setOperater(operater);
        return this;
    }

    /**
     * 设置操作者
     *
     * @param operater 操作者
     */
    public void setOperater(String operater) {
        this.operater = operater == null ? null : operater.trim();
    }

    /**
     * 获取商品特殊ID(预留字段)
     *
     * @return productSpecialId - 商品特殊ID(预留字段)
     */
    public Long getProductSpecialId() {
        return productSpecialId;
    }

    public ItemProductDO withProductSpecialId(Long productSpecialId) {
        this.setProductSpecialId(productSpecialId);
        return this;
    }

    /**
     * 设置商品特殊ID(预留字段)
     *
     * @param productSpecialId 商品特殊ID(预留字段)
     */
    public void setProductSpecialId(Long productSpecialId) {
        this.productSpecialId = productSpecialId;
    }

    /**
     * 获取商品特殊CODE(预留字段)
     *
     * @return productSpecialCode - 商品特殊CODE(预留字段)
     */
    public String getProductSpecialCode() {
        return productSpecialCode;
    }

    public ItemProductDO withProductSpecialCode(String productSpecialCode) {
        this.setProductSpecialCode(productSpecialCode);
        return this;
    }

    /**
     * 设置商品特殊CODE(预留字段)
     *
     * @param productSpecialCode 商品特殊CODE(预留字段)
     */
    public void setProductSpecialCode(String productSpecialCode) {
        this.productSpecialCode = productSpecialCode == null ? null : productSpecialCode.trim();
    }

    /**
     * 获取商品特殊属性(预留字段)
     *
     * @return productSpecialAttr - 商品特殊属性(预留字段)
     */
    public String getProductSpecialAttr() {
        return productSpecialAttr;
    }

    public ItemProductDO withProductSpecialAttr(String productSpecialAttr) {
        this.setProductSpecialAttr(productSpecialAttr);
        return this;
    }

    /**
     * 设置商品特殊属性(预留字段)
     *
     * @param productSpecialAttr 商品特殊属性(预留字段)
     */
    public void setProductSpecialAttr(String productSpecialAttr) {
        this.productSpecialAttr = productSpecialAttr == null ? null : productSpecialAttr.trim();
    }

    /**
     * 获取商品详情的HTML
     *
     * @return detailHtml - 商品详情的HTML
     */
    public String getDetailHtml() {
        return detailHtml;
    }

    public ItemProductDO withDetailHtml(String detailHtml) {
        this.setDetailHtml(detailHtml);
        return this;
    }

    /**
     * 设置商品详情的HTML
     *
     * @param detailHtml 商品详情的HTML
     */
    public void setDetailHtml(String detailHtml) {
        this.detailHtml = detailHtml == null ? null : detailHtml.trim();
    }


    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ItemProductDO other = (ItemProductDO) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
                && (this.getStoreId() == null ? other.getStoreId() == null : this.getStoreId().equals(other.getStoreId()))
                && (this.getBrandId() == null ? other.getBrandId() == null : this.getBrandId().equals(other.getBrandId()))
                && (this.getCateId() == null ? other.getCateId() == null : this.getCateId().equals(other.getCateId()))
                && (this.getProductType() == null ? other.getProductType() == null : this.getProductType().equals(other.getProductType()))
                && (this.getProductCode() == null ? other.getProductCode() == null : this.getProductCode().equals(other.getProductCode()))
                && (this.getProductName() == null ? other.getProductName() == null : this.getProductName().equals(other.getProductName()))
                && (this.getPicUrl() == null ? other.getPicUrl() == null : this.getPicUrl().equals(other.getPicUrl()))
                && (this.getDescription() == null ? other.getDescription() == null : this.getDescription().equals(other.getDescription()))
                && (this.getSaleStatus() == null ? other.getSaleStatus() == null : this.getSaleStatus().equals(other.getSaleStatus()))
                && (this.getOnShelvesTime() == null ? other.getOnShelvesTime() == null : this.getOnShelvesTime().equals(other.getOnShelvesTime()))
                && (this.getOffShelvesTime() == null ? other.getOffShelvesTime() == null : this.getOffShelvesTime().equals(other.getOffShelvesTime()))
                && (this.getMinPrice() == null ? other.getMinPrice() == null : this.getMinPrice().equals(other.getMinPrice()))
                && (this.getMaxPrice() == null ? other.getMaxPrice() == null : this.getMaxPrice().equals(other.getMaxPrice()))
                && (this.getSaleQty() == null ? other.getSaleQty() == null : this.getSaleQty().equals(other.getSaleQty()))
                && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
                && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
                && (this.getOperater() == null ? other.getOperater() == null : this.getOperater().equals(other.getOperater()))
                && (this.getProductSpecialId() == null ? other.getProductSpecialId() == null : this.getProductSpecialId().equals(other.getProductSpecialId()))
                && (this.getProductSpecialCode() == null ? other.getProductSpecialCode() == null : this.getProductSpecialCode().equals(other.getProductSpecialCode()))
                && (this.getProductSpecialAttr() == null ? other.getProductSpecialAttr() == null : this.getProductSpecialAttr().equals(other.getProductSpecialAttr()))
                && (this.getDetailHtml() == null ? other.getDetailHtml() == null : this.getDetailHtml().equals(other.getDetailHtml()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getStoreId() == null) ? 0 : getStoreId().hashCode());
        result = prime * result + ((getBrandId() == null) ? 0 : getBrandId().hashCode());
        result = prime * result + ((getCateId() == null) ? 0 : getCateId().hashCode());
        result = prime * result + ((getProductType() == null) ? 0 : getProductType().hashCode());
        result = prime * result + ((getProductCode() == null) ? 0 : getProductCode().hashCode());
        result = prime * result + ((getProductName() == null) ? 0 : getProductName().hashCode());
        result = prime * result + ((getPicUrl() == null) ? 0 : getPicUrl().hashCode());
        result = prime * result + ((getDescription() == null) ? 0 : getDescription().hashCode());
        result = prime * result + ((getSaleStatus() == null) ? 0 : getSaleStatus().hashCode());
        result = prime * result + ((getOnShelvesTime() == null) ? 0 : getOnShelvesTime().hashCode());
        result = prime * result + ((getOffShelvesTime() == null) ? 0 : getOffShelvesTime().hashCode());
        result = prime * result + ((getMinPrice() == null) ? 0 : getMinPrice().hashCode());
        result = prime * result + ((getMaxPrice() == null) ? 0 : getMaxPrice().hashCode());
        result = prime * result + ((getSaleQty() == null) ? 0 : getSaleQty().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getOperater() == null) ? 0 : getOperater().hashCode());
        result = prime * result + ((getProductSpecialId() == null) ? 0 : getProductSpecialId().hashCode());
        result = prime * result + ((getProductSpecialCode() == null) ? 0 : getProductSpecialCode().hashCode());
        result = prime * result + ((getProductSpecialAttr() == null) ? 0 : getProductSpecialAttr().hashCode());
        result = prime * result + ((getDetailHtml() == null) ? 0 : getDetailHtml().hashCode());
        return result;
    }
}